<?php
if($access_key != "9jkd783j9tgnhs8"){ header("location: ../"); exit; }

$filtro_dist = 100;
if($_POST["btn_buscar"] == "Buscar"){
    
    $filtro_chave = $_POST["chave"];
    $filtro_dt_inicial = $_POST["dt_inicial"];
    $filtro_dt_final = $_POST["dt_final"];
    $filtro_tipo = $_POST["tipo"];
    $filtro_genero = $_POST["genero"];
    $filtro_estado = addslashes($_POST["estado"]);
    $filtro_cidade = addslashes($_POST["cidade"]);
    $filtro_regiao = $_POST["regiao"];
    $filtro_dist = $_POST["dist"];
    $filtro_latitude = round($_POST["latitude"], 10);
    $filtro_longitude = round($_POST["longitude"], 10);
    
    // traz as coordenadas da cidade selecionada
    if($filtro_cidade != ''){
        $sql = "SELECT d_latitude, d_longitude FROM cidade WHERE UF = \"$filtro_estado\" AND nome = \"$filtro_cidade\"";
        
        $db = new db(config::$driver);
        $con = $db->conecta();
        $res = $db->query($sql, $con);
        
        $cty = $db->fetch_array($res);
        $filtro_latitude = $cty["d_latitude"];
        $filtro_longitude = $cty["d_longitude"];
        $db->close($con);
    }
    
    
    if($filtro_regiao && $filtro_dist && $filtro_latitude && $filtro_longitude){
        $Km = $filtro_dist * 89.992800576;
        
        $lat = explode('.', $filtro_latitude);
        $lon = explode('.', $filtro_longitude);
        
        $lat_min = $lat[0].".".round(str_replace('.', '', $lat[1] - $Km), 10);
        $lon_min = $lon[0].".".round(str_replace('.', '', $lon[1] - $Km), 10);
        $lat_max = $lat[0].".".round(str_replace('.', '', $lat[1] + $Km), 10);
        $lon_max = $lon[0].".".round(str_replace('.', '', $lon[1] + $Km), 10);
    }
    
    $especial = array(',','.',';',':','/','?','!','@','#','$','%','&','*','(',')','{','}','[',']','+','=','`','<','>','^','~','|','\\','"','\'');
    $conjuncao = array(" da "," de "," do "," das "," dos "," em ");
    
    $busca_texto = strtolower($filtro_chave);
    $busca_texto = strtr($busca_texto, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC");
    $busca_texto = str_replace($especial.$conjuncao, " ", $busca_texto);
    $vet_chave = explode(" ", $busca_texto);
    
    $sql = "SELECT e.*, concat(tp.nome, ' ', te.nome, ' ', g.nome, ' ', p.nome, ' ', p.identificacao, ' ', e.titulo, ' ', e.descri) AS texto
            FROM tipo_emp tp, tipo_eve te, genero g, empresa p, evento e LEFT JOIN cidade c ON e.id_cidade = c.id 
            WHERE e.id_empresa = p.id AND p.id_tipo = tp.id AND e.id_tipo = te.id AND e.id_genero = g.id";
    
    if($filtro_dt_inicial != ''){
        $sql .= " AND e.dt_inicial >= '".data_inter($filtro_dt_inicial)."'";
    }else{
        $sql .= " AND e.dt_inicial >= '".date("Y-m-d 00:00:00")."'";
    }
    if($filtro_dt_final != ''){
        $sql .= " AND e.dt_final <= '".data_inter($filtro_dt_final)."'";
    }
    if($filtro_tipo != ''){
        $sql .= " AND e.id_tipo = '$filtro_tipo'";
    }
    if($filtro_genero != ''){
        $sql .= " AND e.id_genero = '$filtro_genero'";
    }
    if($filtro_estado != ''){
        $sql .= " AND c.UF = '$filtro_estado'";
    }
    if($filtro_cidade != ''){
        $sql .= " AND c.nome = '".utf8_decode($filtro_cidade)."'";
    }
    if($lat_min && $lon_min && $lat_max && $lon_max){
        $sql .= " AND c.d_latitude >= '$lat_min' AND c.d_latitude <= '$lat_max'";
        $sql .= " AND c.d_longitude >= '$lon_min' AND c.d_longitude <= '$lon_max'";
    }
    
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    
    $busca_result = null;
    $c = 0;
    while($busca = $db->fetch_array($res)){
        $busca_result[$c] = $busca;
        $busca_result[$c]["qnt"] = 0;
        $busca_result[$c]["freq"] = 0;
        
        $texto = strtolower($busca["texto"]);
        $texto = strtr($texto, "áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ", "aaaaeeiooouucAAAAEEIOOOUUC");
        $texto = str_replace($especial.$conjuncao, " ", $texto);
        $busca_result[$c]["texto"] = $texto;
        
        for($i = 0; $i <= count($vet_chave); $i++){
            if($vet_chave[$i] != ''){
                $qtd = substr_count($texto, $vet_chave[$i]);
                if($qtd > 0){
                    $busca_result[$c]["qnt"]++;
                    $busca_result[$c]["freq"] += $qtd;
                }
            }
            $i++;
        }
        $c++;
    }
    
    // ordenar $busca_result[]
    for($i = count($busca_result)-1; $i >= 1; $i--){
        for($j = 0; $j < $i; $j++){
            if($busca_result[$j]["qnt"] < $busca_result[$j+1]["qnt"]) {
                $aux = $busca_result[$j];
                $busca_result[$j] = $busca_result[$j+1];
                $busca_result[$j+1] = $aux;
            }
        }
    }
    
    if(strlen($filtro_chave > 0)){
        for($i = count($busca_result); $i >= 0 ; $i--){
            if($busca_result[$i]["qnt"] == 0){
                //$busca_result[$i] = NULL;
                unset($busca_result[$i]);
            }else{
                break;
            }
        }
    }
    
}else{
    
    $sql = "SELECT * FROM evento WHERE dt_inicial >= '".date("Y-m-d")." 00:00:00'";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    
    while($eve = $db->fetch_array($res)){
        $busca_result[] = $eve;
    }
    
}

function busca($busca_result){
    
    for($i = 0; $i < count($busca_result); $i++){
        $evento = new evento();
        $evento->carregar_dados($busca_result[$i]);
        
        echo "
        <div class='result'>
            <div class='result_img'>
                <a href='".url("pag=eve&id=".$evento->get_id())."' title='Detalhes do evento'><img src='banner/".$evento->get_banner()."' alt='Banner'></a>
            </div>
            <div class='result_dados'>
                <a href='".url("pag=eve&id=".$evento->get_id())."' title='Detalhes do evento'><h1>".$evento->get_titulo()."</h1></a>
                <a href='".url("pag=eve&id=".$evento->get_id())."' title='Detalhes do evento'><p>".$evento->get_local()."</p></a>
                <a href='".url("pag=eve&id=".$evento->get_id())."' title='Detalhes do evento'><p>".$evento->get_dt_inicial()."</p></a>
            </div>
            <div class='clean'></div>
        </div>";
        unset($evento);
    }
    
    if($i == 0){
        echo "Nenhum resultado";
    }
    
}

function mostraTipoBusca($t){
    $sql = "SELECT * FROM tipo_eve";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    
    while($tipo = $db->fetch_array($res)){
        echo "
        <option value='".$tipo["id"]."'";
        if($t == $tipo["id"]){ echo "selected"; }
        echo ">".utf8_encode($tipo["nome"])."</option>";
    }
}

function mostraGeneroBusca($g){
    $sql = "SELECT * FROM genero";
    $db = new db(config::$driver);
    $con = $db->conecta();
    $res = $db->query($sql, $con);
    $db->close($con);
    
    while($genero = $db->fetch_array($res)){
        echo "
        <option value='".$genero["id"]."'";
        if($g == $genero["id"]){ echo "selected"; }
        echo ">".utf8_encode($genero["nome"])."</option>";
    }
}